package aliyun.cx.admin.service;

import aliyun.cx.admin.entity.Role;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 角色管理服务接口
 */
public interface RoleService extends IService<Role> {
    
    /**
     * 根据用户ID获取角色列表
     */
    List<Role> getRolesByUserId(Long userId);
    
    /**
     * 根据角色名称获取角色
     */
    Role getRoleByName(String roleName);
    
    /**
     * 检查角色名称是否存在
     */
    boolean existsByName(String roleName);
    
    /**
     * 根据权限级别获取角色列表
     */
    List<Role> getRolesByLevel(Integer level);
    
    /**
     * 为角色分配权限
     */
    boolean assignPermissions(Long roleId, List<Long> permissionIds);
    
    /**
     * 移除角色的权限
     */
    boolean removePermissions(Long roleId, List<Long> permissionIds);
    
    /**
     * 获取角色的权限ID列表
     */
    List<Long> getPermissionIdsByRoleId(Long roleId);
}